﻿import { ElMessageBox } from 'element-plus'
const { t } = useI18n() // 国际化

/**
 * 处理异常
 * @param {*} error
 */
export const httpErrorStatusHandler = error => {
  let message = ''
  if (error && error.response) {
    switch (error.response.code) {
      case 302:
        message = t('error', 'code302')
        break
      case 400:
        message = t('error', 'code400')
        break
      case 401:
        message = t('error', 'code401')
        break
      case 403:
        message = t('error', 'code403')
        break
      case 404:
        message = t('error', 'code404') + `${error.response.config.url}`
        break // 在正确域名下
      case 408:
        message = t('error', 'code408')
        break
      case 409:
        message = t('error', 'code409')
        break
      case 500:
        message = t('error', 'code500')
        break
      case 501:
        message = t('error', 'code501')
        break
      case 502:
        message = t('error', 'code502')
        break
      case 503:
        message = t('error', 'code503')
        break
      case 504:
        message = t('error', 'code504')
        break
      case 505:
        message = t('error', 'code505')
        break
      default:
        message = t('error', 'unknownMistake')
        break
    }
  }
  if (error.message.includes('timeout')) message = t('error', 'timeout')
  if (error.message.includes('Network')) {
    message = window.navigator.onLine ? t('error', 'networkOnline') : t('error', 'networkOffline')
    ElMessageBox.alert(message, t('message', 'warning'), {
      confirmButtonText: t('action', 'allRight'),
      type: 'warning'
    })
  }
}
